1886-BHV-01 S.10-12
Komtek 1: Verbesserter ZeichengeneratorHelmut BernhardtWer seinen Komtek 1 nach den im Hardware-Sonderheft Nov.85 beschriebenen Umbauten als relativ komfortable Schreibmaschine nutzt, kann sich eigentlich nur noch an den amerikanischen Sonderzeichen, die zudem auch noch falsch sind, anstelle der deutschen Umlaute auf dem Bildschirm stören. Dieser Mißstand wird nun behoben. Voraussetzung ist, daß man jemanden kennt, der ein 2732 eprommen kann. Zeichengenerator im Komtek 1Bei der für den Komtek 1 wegen mangelnder Hardware-Unterlagen üblichen Wühlarbeit zum Durchschauen der Schaltung stellte sich die in Abb.1 wiedergegebene Beschaltung des 2732-Zeichengenerator-EPROMs heraus. Weitere Erkenntnisse über die Organisation (Zuordnung von EPROM-Adressen und -Daten zu Bildschirmpositionen) konnten durch Herausnehmen des EPROMs, Hochbiegen und An-Masse-Legen einzelner Pins und wieder Hineinstecken des EPROMs in den Sockel, und Interpretation der veränderten Bildschirmdarstellung erhalten werden. Letzte Unsicherheiten ließen sich durch Auslesen des Inhaltes des Zeichengerators mit einem EPROMer ausräumen (für diesen Dienst an der Digitaltechnik sei Arnulf Sopp herzlichst gedankt). Wie sich die verschiedenen Beobachtungen und die Untersuchung des Hexdumps aus dem EPROM zu den folgenden Vorstellungen zusammenfügen, möchte ich mir hier darzustellen ersparen (nicht nur, weil es wohl niemanden interessiert, sondern hauptsächlich, weil ich dazu keine Lust habe). Wichtig ist nur das Ergebnis, und das rechtfertigt den Schreibaufwand. Danach ist eine Druckposition für ein Zeichen auf dem Bildschirm in 7 waagerechte und 16 senkrechte Punkte aufgeteilt (bei TRS80 und GENIE 6x12). Der Inhalt einer waagerechten Dotreihe entspricht von links nach rechts den Bits D6 bis D0 im jeweiligen Byte im Zeichengenerator. Die EPROM-Adreßeingänge A0 bis A2 adressieren dabei eine von 8 Dotreihen (8 aufeinanderfolgende Bytes im EPROM) in entweder der oberen oder der unteren Hälfte einer Druckposition während durch den Adreßeingang A11 vorgegeben ist, welche Hälfte angesteuert wird. An die Adreßeingänge A3 bis A10 sind die Daten D0 bis D7 des Video-RAMs geführt, Ensprechend dem ASCII-Code 00-FF liegen also hintereinander in den unteren 2K des EPROM-Adreßbereichs 256 Gruppen von je 8 Bytes, die dem Bildschirminhalt der oberen Hälfte einer Druckposition entsprechen. Analog sind die Informationen für die untere Hälfte einer Druckposition mit einem Offset von 2048 Adressen in den oberen 2K des EPROMs abgelegt.Zur Darstellung von Zeichen mit ASCII-Codes bis 7FH wird dabei nur die obere Hälfte einer Druckposition genutzt. Die meisten Zeichen werden innerhalb einer 5x7-Matrix dargestellt. Die untere der 8 waagerechten und 2 seitliche senkrechte Dotreihen werden nicht genutzt. Nur bei Unterlängen wird auch die 8. waagerechte Reihe mitbenutzt. Da diese aber für eine echte Unterlänge nicht ausreicht, werden Zeichen wie "g" und "p" einfach hochgeschoben. Die unteren Hälften der Druckpositionen werden nur bei den Pixelgraphikzeichen (ASCII-Codes größer 7FH) benutzt. Da die Teilung der 16 wagerechten Dotzeilen durch 3 und die der 7 senkrechten durch 2 keine ganzzahligen Werte ergibt, mußte hingenommen werden, daß die Blockgraphik entsprechend ungleichmäßig aussieht. Die Blockgraphik war aber leztendlich nicht Gegenstand der Kritik sondern der Satz der Zeichen mit ASCII-Codes bis 7FH. Es ist nicht einzusehen, warum diese Zeichen nicht auch die untere Hälfte der Druckposition mitbenutzen sollen. Es muß nicht sein, daß ein Buchstabe an einem Graphikzeichen in der Zeile darüber festklebt. Dafür müssen nur alle Zeichen um 2 Dotzeilen in der Matrix nach unten geschoben werden, d.h. im EPROM müssen alle Bytes in eine um 2 höhere Adresse verschoben werden. Innerhalb der 8 Bytes für ein Zeichen wird das erste Byte in die Adresse des 3. Bytes, das 2. Byte in die Adresse des 4. Bytes u.s.w. verschoben. Die freigewordenen ersten beiden Bytes werden mit 00H aufgefüllt. Das 7. und 8. Byte werden aber nicht einfach um zwei Adressen verschoben, sondern um 2048-8 Adressen, damit sie nicht in die ersten beiden Bytes des nächsten Zeichens sondern in die oberen 2 Dotzeilen der unteren Hälfte der Druckposition des gleichen Zeichens gelangen. Diese Prozedur wird allerdings nur mit dem Adreßbereich 0-1K (und 2-3K) durchgeführt, weil die in den anderer 2K des EPROMs untergebrachten Informationen die der Blockgrahik-Zeichen sind. Damit sind die Zeichen zwar alle von der Zeile darüber abgerückt worden, hübscher sind sie dadurch noch nicht geworden. Deshalb müssen die Zeichen für die Umlaute, die Zeichen mit Unterlängen und alle sonstigen unschönen Gebilde neu gestaltet werden. Das ist aber eine enorme Arbeit, die zu verrichten bei Bestehen eines brauchbaren Zeichensatzes (z.B. der des GENIE) nicht ganz einzusehen ist. Der Zeichensatz im GENIE ist aber etwas anders organisiert. Erstens werden die Grafikzeichen nicht über den Zeichengenerator sondern per Hardware erzeugt, weshalb man dort mit einem 2716-EPROM auskommt. Zweitens wird ein Zeichen durch 16 aufeinanderfolgende Bytes im EPROM dargestellt, wovon nur die ersten 12 Bytes (entsprechend 12 Dotreihen pro Druckposition) benutzt werden. Und drittens ist die Zuordnung der Bits eines Bytes im Zeichengenerator zu den Dots einer Dotreihe genau umgekehrt, d.h. die niederwertigen Bits representieren die linken Dots in der Reihe, was beim Komtek ungekehrt ist. Da mir bekannt war, daß Arnulf Sopp schon einen verbesserten Zeichensatz für den GENIE erstellt hat, der alle Zeichen um 2 Dots herunterrückt und die Großbuchstaben Ä, Ö und Ü auch tatsächlich als Großbuchstaben erscheinen läßt, und ich nicht nur zu bequem bin sondern auch Respekt vor den Fähigkeiten anderer, die das bedeutend besser können, habe, schmarotzte ich einfach von Arnulfs Arbeit und bat ihn, mir seinen Zeichensatz in den des Komtek einzumassieren. Das ist ihm mit der beiliegenden eleganten Soppftware auch hervorragend gelungen. Nur einen Haken hat das ganze Projekt. Arnulfs Zeichensatz sieht für die ASCII- Codes 00-1F nicht die für den GENIE üblichen fernöstlichen Gebilde sondern die diesen Codes entsprechenden Hexzahlen vor. Die werden, wenn im GENIE eine ent- sprechende Änderung vorgenommem wird, dann auch im Bildschirm dargestellt, wenn eine Zahl zwischen 00 und 1F in den Bildwiederholseicher gepoked wird. Beim Komtek ist eine entsprechende Änderung nicht möglich, bzw. ich habe sie noch nicht herausgefunden. Deshalb erscheinen beim Arbeiten im Level-II-Basic, das anstelle der ASCII-Codes 40-5F die Codes 00-1F an den Bildwiederholspeicher ausgibt, dort anstelle der Großbuchstaben die Arnu1f'schen übereinander gestellten Hexzahlen auf dem Bildschirm. Im DOS und Disk-Basic ist dies nicht mehr der Fall. Um im Level-II-Basic auch erkennbare Zeichen auf dem Bildschirm zu haben, müßten deshalb anstelle der ansonsten sehr informativen Hexzahlen für die ASCII-Codes 00-1F lieber die Zeichen mit den ASCII-Codes 40-5F verwendet werden. Für Bastler, die wegen häuiger Hardware-Eingriffe gelegentlich auf ihre Floppy-Laufwerke verzichten müssen und dann für Testzwecke auf Level-II-Basic angewiesen sind, kann das doch von Bedeutung sein. Helmut BernhardtUnd hier Arnulfs Soppftwärechen
|